Pump Controller System and Method

ABSTRACT

A method and apparatus for a pump control system. One or more embodiments of the invention include a pump controller that can perform a self-calibrating procedure, can provide precise motor speed control, can provide a limp mode before shutting down the motor when system parameters are exceeded and/or fault conditions occur, can detect fault conditions, and can store fault conditions for later retrieval.

RELATED APPLICATIONS

This application is a continuation of co-pending U.S. patent applicationSer. No. 12/973,778, filed Dec. 20, 2010, which is a continuation ofU.S. patent application Ser. No. 11/981,117, now U.S. Pat. No.7,857,600, filed Oct. 31, 2007, which is a continuation of U.S. patentapplication Ser. No. 10/730,747, now U.S. Pat. No. 8,540,493, filed Dec.8, 2003, the entire contents of which are incorporated herein byreference.

FIELD OF THE INVENTION

This invention relates generally to pumps and pumping methods, and moreparticularly to pump motor controllers and control methods.

BACKGROUND OF THE INVENTION

Residential water systems typically include a line-operated motor fordriving a pump-motor assembly to retrieve water from a well. Thepump-motor assembly is generally submerged in the well at the end of adrop pipe. To maintain a constant supply pressure, the water systemsalso typically include a pressurized storage tank and a pressure switchthat causes the motor to run when the pressure in the water system islow. The pressurized storage tanks are often relatively large, so thatthe motor does not need to be turned on and off frequently.

A need exists for a pump control system and method for performing aself-calibration procedure, for providing precise motor speed control,for providing a limp mode before shutting down the motor when systemparameters are exceeded and/or fault conditions occur, for detectingfault conditions, and for storing fault conditions for later retrieval.Each embodiment of the present invention achieves one or more of theseresults.

SUMMARY OF THE INVENTION

Some embodiments of the present invention provide a method ofcalibrating a pump connected to a water distribution system and having amotor. The method can include operating the motor in a forwarddirection, sensing a pressure in the water distribution system,determining whether the sensed pressure has increased by a pressureincrement, increasing an operating frequency of the motor by a frequencyincrement if the sensed pressure has not increased by the pressureincrement, and storing a speed of the motor as a minimum calibratedspeed value if the sensed pressure has increased by the pressureincrement.

Other embodiments of the present invention can provide a method ofregulating the speed of a motor in a pump. The method can includemeasuring an actual pressure in the water distribution system;determining whether the actual pressure is less than, greater than, orequal to a pre-set pressure value; subtracting the actual pressure froma desired pressure to determine a pressure error if the actual pressureis less than or greater than the pre-set pressure value; determining anintegral of the pressure error; multiplying the integral by an integralgain to determine a first value; multiplying the pressure error by aproportional gain to determine a second value; summing the first valueand the second value; and generating an updated speed control commandbased on the sum of the first value and the second value.

A limp mode can be provided according to some methods of the invention.The limp mode method can include measuring a parameter (e.g., a buscurrent, a bus voltage, a line current, and/or a temperature) anddetermining whether the parameter is greater or less than a threshold.The limp mode method can also include reducing an output voltageprovided to the motor and/or an operating frequency of the motor if theparameter is greater or less than the threshold and shutting down themotor if the motor does not operate within operational limits whilebeing driven in the limp mode.

Some embodiments of the invention can include various methods ofdetecting fault conditions in a motor of a pump or a water distributionsystem. These methods can include bus over-voltage detection, busover-current detection, dry-running detection, over-temperaturedetection, high or low-speed foreign-object jamming detection, andpressure sensor failure detection. In some embodiments, the inventionprovides a method of creating a fault log and storing fault conditioncodes for later retrieval.

Further objects and advantages of the present invention, together withthe organization and manner of operation thereof, will become apparentfrom the following detailed description of the invention when taken inconjunction with the accompanying drawings, wherein like elements havelike numerals throughout the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments of the present invention are further described withreference to the accompanying drawings. However, it should be noted thatthe embodiments of the invention as disclosed in the accompanyingdrawings are illustrated by way of example only. The various elementsand combinations of elements described below and illustrated in thedrawings can be arranged and organized differently to result inembodiments which are still within the spirit and scope of the presentinvention.

In the drawings, wherein like reference numerals indicate like parts.

FIG. 1 is a schematic illustration of a pump, a water tank, and a pumpcontrol system according to one embodiment of the invention;

FIG. 2 is a flowchart illustrating a pump calibration method ofoperation for use with the pump control system of FIG. 1;

FIG. 3 is a flowchart illustrating a speed regulation method ofoperation for use with the pump control system of FIG. 1;

FIG. 4 is a flowchart illustrating a limp mode method of operation foruse with the pump control system of FIG. 1;

FIG. 5 is a flowchart illustrating a bus over-voltage or busunder-voltage fault method of operation for use with the pump controlsystem of FIG. 1;

FIG. 6 is a flowchart illustrating a bus over-current fault method ofoperation for use with the pump control system of FIG. 1;

FIG. 7 is a flowchart illustrating a dry-running fault method ofoperation for use with the pump control system of FIG. 1;

FIG. 8 is a flowchart illustrating an over-temperature fault method ofoperation for use with the pump control system of FIG. 1;

FIG. 9 is a flowchart illustrating a high-speed jamming fault method ofoperation for use with the pump control system of FIG. 1;

FIG. 10 is a flowchart illustrating a low-speed jamming fault method ofoperation for use with the pump control system of FIG. 1;

FIG. 11 is a flowchart illustrating a pressure sensor failure method ofoperation for use with the pump control system of FIG. 1;

FIG. 12 is a flowchart illustrating a fault storage and fault retrievalmethod of operation for use with the pump control system of FIG. 1; and

FIG. 13 is an example of a Voltage/Hertz (V/Hz) curve for a motor foruse with one embodiment of the invention.

DETAILED DESCRIPTION

Before one embodiment of the invention is explained in full detail, itis to be understood that the invention is not limited in its applicationto the details of construction and the arrangement of components setforth in the following description or illustrated in the followingdrawings. The invention is capable of other embodiments and of beingpracticed or of being carried out in various ways. Also, it is to beunderstood that the phraseology and terminology used herein is for thepurpose of description and should not be regarded as limiting. The useof “including,” “comprising” or “having” and variations thereof hereinis meant to encompass the items listed thereafter and equivalentsthereof as well as additional items. The terms “mounted,” “connected”and “coupled” are used broadly and encompass both direct and indirectmounting, connecting and coupling. Further, “connected” and “coupled”are not restricted to physical or mechanical connections or couplingsand can include electrical connections and couplings, whether direct orindirect.

In addition, it should be understood that embodiments of the inventioninclude both hardware and electronic components or modules that, forpurposes of discussion, may be illustrated and described as if themajority of the components were implemented solely in hardware. However,one of ordinary skill in the art, and based on a reading of thisdetailed description, would recognize that, in at least one embodiment,the electronic based aspects of the invention may be implemented insoftware. As such, it should be noted that a plurality of hardware andsoftware based devices, as well as a plurality of different structuralcomponents may be utilized to implement the invention. Furthermore, andas described in subsequent paragraphs, the specific mechanicalconfigurations illustrated in the drawings are intended to exemplifyembodiments of the invention and that other alternative mechanicalconfigurations are possible.

FIG. 1 illustrates a pump 10 connected to one or more water tanks 12. Insome embodiments, the pump 10 is a submersible pump for use inresidential or commercial well pump systems. In other embodiments, thepump 10 is a pump for use in pool or spa systems. In still otherembodiments, the pump 10 is a pump for use in residential or commercialwater distribution systems that are connected to a municipal watersystem. If the pump 10 is for use in a pool or spa system or adistribution system that is connected to a municipal water system, thepump 10 may not be connected to a water tank. The pump 10 can be used inresidential or commercial turf or irrigation systems, agriculturalsystems, golf course irrigation systems, drip irrigation systems, eachone of which may or may not include a water tank and may or may not beconnected to a municipal water system. In some embodiments, the pump 10can be used as an additional pump in a pressure-boosting system. Forexample, the water distribution system can include a well, a first pumppositioned in the well, a water tank connected to the first pump, and asecond, booster pump connected to the water tank. In other embodiments,the pump 10 can be used in liquid distribution systems other than waterdistribution systems, such as systems for distributing hydraulic fluid.

The pump 10 can be connected to a pump control system 14 according toone embodiment of the invention. The pump 10 can include or can beconnected to a motor 16 in any conventional manner. The pump controlsystem 14 can be used to control the operation of the motor 16. In someembodiments, the motor 16 is an AC induction motor, a brush-less DCmotor, or a switch-reluctance motor. Various outputs and/or controlparameters of the pump control system 14 can be modified for eachparticular type of motor.

The pump control system 14 can include one or more pressure sensors. Insome embodiments, a pressure sensor 18 can be positioned between thepump 10 and the water tank 12. In one embodiment, the pressure sensor 18can be positioned to sense the pressure in an output line 20 between thepump 10 and the water tank 12. In some embodiments, the pressure sensor18 can generate a signal having a range of about 4 to 20 mA or about 0.5to 4.5 or 5.0 V. The signal generated by the pressure sensor canrepresent an actual pressure of 0 to about 50 PSI, 0 to about 100 PSI, 0to about 250 PSI, or any other suitable pressure range. In someembodiments, the pressure sensor 18 is a 4 to 20 mA, Model No.86HP062Y00100GSOC pressure sensor manufactured by Texas Instruments,Inc.; a 0.5 to 4.5 V, Model No. 61CP0320100SENAO pressure sensormanufactured by Texas Instruments, Inc.; a 4 to 20 mA, Model No.MSP-601-100-P-5-N-4 pressure sensor manufactured by MeasurementSpecialties, Inc.; or any suitable equivalent. In one embodiment, thepump control system 14 includes a single pressure sensor. However, insome embodiments, additional pressure sensors can be placed in anysuitable position in a residential or commercial water distributionsystem, for example, between the water tank 12 and any water outlets(i.e., faucets, shower heads, toilets, washing machines, dishwashers,boilers, etc.) in order to monitor the water pressure in a residentialhome or a commercial building. In pool or spa systems, additionalpressure sensors can be placed between the pump 10 and any input portsor output ports connected to the pool or spa. For example, pressuresensors can be positioned to sense the pressure in output ports of thepool or spa in order to detect foreign object obstructions in the outputports. A multiplexer (not shown) or a digital signal processor (asdiscussed below) could be used in the pump control system 14 to manageinput signals from multiple pressure sensors and/or multiple inputchannels. One or more flow sensors can be used in the pump controlsystem 14, rather than or in addition to the one or more pressuresensors.

The pump control system 14 can be connected to an AC bus line 22 and/orone or more batteries (not shown). The pump control system 14 can beconnected to one or more batteries if the pump control system 14 is usedin a portable pool or spa system, a recreational vehicle waterdistribution system, or a marine craft water distribution system. Thebatteries can be standard 12-volt automotive batteries, 24-voltbatteries, or 32-volt batteries. However, the batteries can include anysuitable battery size, combination of battery sizes, or battery packs.If batteries are used, the pump control system 14 can include a DC to ACinverter. In other embodiments, the pump 10 can be connected to one ormore generators.

The pump control system 14 can include a controller 24. The controller24 can include one or more integrated circuits, which can be programmedto perform various functions, as will be described in detail below. Asused herein and in the appended claims, the term “controller” is notlimited to just those integrated circuits referred to in the art asmicrocontrollers, but broadly refers to one or more microcomputers,processors, application-specific integrated circuits, or any othersuitable programmable circuit or combination of circuits. The controller24 can act as a power conditioner, a variable-speed drive, a pressureregulator, and/or a motor protector in the pump control system 14. Insome embodiments, the controller 24 can include a digital signalprocessor (DSP) 26 and a microcontroller 28 that cooperate to controlthe motor 16. For example, the DSP 26 can manage overall systemoperations, and the microcontroller 28 can act as one or more “smart”sensors having enhanced capabilities. The microcontroller 28 can alsocoordinate serial communications. In some embodiments, the DSP 26 can befrom the Model No. TMS320C240XA family of DSPs manufactured by TexasInstruments, Inc., or any suitable equivalent DSP. In some embodiments,the microcontroller 28 can be an 8-bit microcontroller that is on anisolated ground plane and communicates with the DSP 26 via anoptically-isolated asynchronous communication channel. Themicrocontroller 28 can be a Model No. PIC16LF870 integrated circuitmanufactured by Microchip Technology, Inc. In some embodiments, theprotocol for communication between the DSP 26 and the microcontroller 28can include 4 bytes of control data passed at a 64 Hz interval, withouterror detection or correction mechanisms. In some embodiments, the DSP26 can command the microcontroller 28 to enter a “normal” mode once persecond, in order to prevent the microcontroller 28 from resettingwithout the DSP 26 being reset. In some embodiments, the DSP 26 and/oran EEPROM 54 can be reprogrammed in the field by having new parameters,settings, and/or code uploaded, programmed, or downloaded to the DSP 26and/or the EEPROM 54 (e.g., through the microcontroller 28 and a serialcommunication link 56).

The pump control system 14 can also include one or more sensors 30and/or an array of sensors (which can include the pressure sensor 18)connected to the controller 24. In some embodiments, the DSP 26 can readone or more of the sensors 30 directly, whether analog or digital. Forprocessing the analog sensors 30, the DSP 26 can include ananalog-to-digital converter (ADC) 32. The ADC 32 can read severalchannels of analog signals during a conversion period. The conversionperiod can be set to provide an appropriate sampling rate for eachsensor (e.g., a pressure sensor may be sampled at a higher rate than atemperature sensor) and/or for each particular system (e.g., a pressuresensor in a residential building may be sampled at a higher rate than apressure sensor on an output port of a pool or spa). The ADC 32 can bereset before the DSP 26 triggers a new start of conversion (SOC).Resetting the ADC 32 can allow the DSP 26 to maintain uniform channelsample rates.

In some embodiments, the microcontroller 28 can read one or more of thesensors 30 at fixed intervals. For example, the microcontroller 28 canread the pressure sensor 18. The microcontroller 28 can also readisolated power supplies (e.g., power supply module A and power supplymodule B, as shown in FIG. 1) for different types of pressure sensorsthat can be used as the pressure sensor 18. For example, the differenttypes of pressure sensors can include a 4-20 mA pressure sensor and a0-5 V DC pressure sensor. In some embodiments, the microcontroller 28can automatically determine which type of pressure sensor is connectedto the system. The signal from both types of pressure sensors can be ata maximum frequency of 8 Hz, and the minimum sample rate can be 64 Hz.The sensing range for both types of pressure sensors can be 0 to about50 PSI, 0 to about 100 PSI, 0 to about 250 PSI, 0 to about 1000 PSI, 0to about 2500 PSI, or any other suitable pressure range for low, medium,or high-pressure applications. The microcontroller 28 can perform apressure sensor check (for either type of pressure sensor) in order toverify that there is not a fault condition occurring with respect to thepressure sensor 18. The pressure sensor check is described in moredetail below with respect to FIG. 11. The input signal from the pressuresensor check can be at a maximum frequency of 8 Hz, and the minimumsample rate can be 64 Hz.

The microcontroller 28 can also read a temperature sensor 19 (e.g.,located on a heat sink 21 of the controller 24 or located in anysuitable position with respect to the pump 10 and/or the motor 16).Rather than or in addition to the temperature sensor 19, the pumpcontrol system 14 can include a temperature sensor located in anysuitable position with respect to the pump 10 in order to measure,either directly or indirectly, a temperature associated with or in thegeneral proximity of the pump 10 in any suitable manner. For example,the temperature sensor can include one or more (or any suitablecombination) of the following components or devices: a resistiveelement, a strain gauge, a temperature probe, a thermistor, a resistancetemperature detector (RTD), a thermocouple, a thermometer(liquid-in-glass, filled-system, bimetallic, infrared, spot radiation),a semiconductor, an optical pyrometer (radiation thermometer), a fiberoptic device, a phase change device, a thermowell, a thermal imager, ahumidity sensor, or any other suitable component or device capable ofproviding an indication of a temperature associated with the pump 10.The input signal from the temperature sensor 19 can be at a maximumfrequency of 8 Hz, and the minimum sample rate can be 64 Hz. Theoperating range of the temperature sensor 19 can be −25 degrees Celsiusto +140 degrees Celsius. The microcontroller 28 can use the input fromthe temperature sensor 19 to halt operation of the motor 16 during anover-temperature condition (e.g., an over-temperature condition of thecontroller 24), as will be described in more detail below with respectto FIG. 8. In one embodiment, if the temperature of the controller 24becomes greater than about 70 degrees Celsius and/or the line voltagefrom the controller 24 to a two-horsepower motor 16 becomes less thanabout 207 V, the controller 24 can halt operation of the motor 16 orreduce the speed of the motor 16 in order to adjust for anover-temperature condition.

In addition, the microcontroller 28 can read one or more run/stop inputs47. One or more run/stop inputs 47 can be placed in any suitablepositions with respect to the water distribution system. For example, arun/stop input 47 can be a manual or automatic switch placed in closeproximity to a pool or spa. If a user presses a manual switch, thecontroller 24 can immediately disable the motor drive. An automaticswitch can be placed adjacent to a grate or a guard in a pool or spa, sothat the run/stop input 47 is automatically activated (i.e., changesstate) if the grate or guard is removed. Also, a run/stop input 47 canbe a foreign object detection sensor placed in a pool or spa. Inaddition, a run/stop input 47 can be an over-pressure relief valve or awater detection sensor (e.g., placed in a basement of a residentialbuilding). The run/stop inputs 47 can be connected to the controller 24(and in some embodiments, can be read by the microcontroller 28). Therun/stop inputs 47 can be connected to one another in a daisy chainconfiguration, so that if any one of the run/stop inputs 47 is activated(e.g., any one of the run/stop inputs is opened in order to break thecircuit), the controller 24 can immediately disable the motor drive. Therun/stop inputs 47 can also be used to enable the motor drive. In someembodiments, the motor drive can be enabled when the run/stop input isactive (i.e., the contacts are closed) and disabled when the run/stopinput is inactive (i.e., the contacts are open).

The microcontroller 28 can send the raw data from the analog sensors tothe DSP 26 at uniform time intervals via a serial port. The DSP 26 caninclude one or more filters (not shown) or can be programmed to filterthe signals received from the sensors 30 and/or the microcontroller 28.In one embodiment, in order to facilitate filtering, the DSP 26 can readthe sensors 30 or can receive signals from the microcontroller 28 atminimum sample rates of about eight times the sensed signal's maximumfrequency.

As shown in FIG. 1, the pump control system 14 can include a powerfactor correction and converter/rectifier module 34 connected to aneutral line 36 of the AC bus line 22. The controller 24 can beconnected to a ground line 42 of the AC bus line 22 in any suitablemanner. The power factor correction can be greater than or equal toabout 0.9, and in some embodiments greater than or equal to about 0.98,at the rated output power. The power factor correction andconverter/rectifier module 34 can also be connected via a fuse 38 (e.g.,an integral input fuse) to a power line 40 of the AC bus line 22. Insome embodiments, the fuse 38 can be changed so that the motor 16 can beoperated at two or more voltage input settings (e.g., single-phase,line-power voltage inputs of about 115 V RMS at about 30 A RMS or about230 V RMS at about 15 A RMS). In other words, a user can switch betweena line-power voltage input of 115 V RMS and a line-power voltage inputof 230 V RMS by changing only the fuse 38. In some embodiments, thesingle-phase input power is at a line voltage ranging from about 103 to127 V RMS, a line current of about 30 A RMS, and a frequency rangingfrom about 45 to 65 Hz. In other embodiments, the single-phase inputpower is at a line voltage ranging from about 207 to 253 V RMS, a linecurrent of about 15 A RMS, and a frequency ranging from about 45 to 65Hz. Although the controller 24/fuse 38 combinations can be designed forparticular input voltages and currents, in some embodiments, thecontroller 24 can operate the drives 46 to maintain a constant or nearconstant pressure with a voltage of up to about 255 V RMS with a 30 ARMS fuse or with a voltage of as low as about 103 V RMS with a 15 A RMSfuse.

The power factor correction and converter/rectifier module 34 can beconnected to a power supply 44 (which can include a single power supply,or can include a first power supply module A and a second power supplymodule B, as shown in FIG. 1). The power factor correction andconverter/rectifier module 34 can be connected to one or more drives 46for the motor 16 via a DC bus line 48. The drives 46 can be connected tothe pump 10 and/or the motor 16 in order to selectively control themotor 16. In some embodiments, the drives 46 can provide three-phaseoutputs to the motor 16. In one embodiment, the controller 24 can turnthe drives 46 on and off and each of the three drives 46 can operate 120degrees out-of-phase in order to generate an AC sine wave from the inputof the DC bus line 48. In one embodiment, the three-phase outputs caninclude one or more of the following: 0-230 V RMS (line to line) at30-200 Hz; 0-230 V RMS (line to line) at 30-60 Hz; and 0-230 V RMS (lineto line) at 30-80 Hz. However, the maximum voltage output from thedrives 46 can be greater than or less than 230 V RMS. In addition, themaximum voltage output from the drives 46 can be programmed as anysuitable voltage setting (e.g., for a custom motor in a voltage range ofabout 20 V RMS to about 250 V RMS and a frequency range of about 30 Hzto about 250 Hz). In one embodiment, the maximum output power to themotor 16 can be about 2116 W MAX (about 230 V RMS at 9.2 A RMS total);however, the maximum output power of the motor 16 can be greater or lessthan 2116 W MAX. The maximum output voltage to the motor 16 can be about250 V RMS phase-to-phase, and the maximum output current to the motor 16can be about 5.9 A RMS per phase. The power efficiency can be at leastabout 88% at the rated output power (e.g., when the controller 24 isconnected to the motor 16 with three meters of 12-3 W. G. NM-B wire). Insome embodiments, the controller 24 can detect a short circuit (eitherline-to-line, phase-to-phase, or line-to-ground) at the output to themotor 16. The controller 24 can stop the motor drive when a shortcircuit is detected.

As noted, the DSP 26 can read one or more of the sensors 30 directly.One of the sensors 30 can sense the voltage of the DC bus line 48. Insome embodiments, the DSP 26 can sense the voltage of the DC bus line 48and the same sensor or another one of the sensors 30 can sense thecurrent of the DC bus line 48. In some embodiments, the DSP 26 candetermine the voltage of the AC bus line 22 from the voltage on the DCbus line 48, and the DSP 26 can determine the current of the AC bus line22 from the current on the DC bus line 48 (e.g., by applying one or moreconversion factors to the voltage and current of the DC bus line 48). Insome embodiments, one to four sensors can be included on the DC bus line48 in order to measure AC line current, AC line voltage, DC bus current,and DC bus voltage. The one or more sensors 30 on the DC bus line 48 canbe read by the DSP 26 and/or the microcontroller 28.

In general, the terms “bus line,” “bus voltage,” and “bus current” asused herein and in the appended claims refer to the DC bus line 48itself or the voltage and current, respectively, of the DC bus line 48.The bus voltage of the DC bus line 48 can be monitored to determine thepower being supplied to the drives 46. In some embodiments, the targetvoltage for the DC bus line 48 is about 380 V DC. The voltage of the DCbus line 48 can be used by the DSP 26 to halt operation of the motor 16during an over-voltage or under-voltage condition, as will be describedin detail below with respect to FIG. 5. Also, if the voltage of the DCbus line 48 is low, the DSP 26 can operate the motor 16 in a limp mode,as will also be described in detail below with respect to FIG. 4. Thebus current can also be monitored to determine the power being suppliedto the drives 46. In addition, the bus current can be monitored in orderto operate the motor 16 in a limp mode (as described in more detailbelow with respect to FIG. 4) if the bus current exceeds a programmedthreshold. In some embodiments, the maximum frequency of the sensor orsensors 30 for the DC bus line 48 is about 280 Hz, and the minimumsample rate is about 2,240 Hz.

The terms “line voltage” and “line current” as used herein and in theappended claims generally refer to the voltage and current,respectively, of the AC bus line 22 (although the voltage and current ofthe AC bus line 22 may be converted from a measurement taken from the DCbus line 48). However, it should be understood by one of ordinary skillin the art that a bus voltage can be a line voltage (both voltages aremeasured from an electrical “line”), and vice versa. It should also beunderstood by one of ordinary skill in the art that a bus current can bea line current (both currents are measured from an electrical “line”),and vice versa. Thus, the term “bus voltage” can include a “linevoltage” and the term “bus current” can include a “line current.” Insome embodiments, the single-phase input power of the AC line voltage isabout 115 to 230 V RMS at a frequency of about 45 to 65 Hz. In someembodiments, the single-phase input power is at an AC line voltage ofabout 103 to 127 V RMS, an AC line current of about 30 A RMS, and afrequency of about 45 to 65 Hz. In other embodiments, the single-phaseinput power is at an AC line voltage of about 207 to 253 V RMS, an ACline current of about 15 A RMS, and a frequency of about 45 to 65 Hz. Inone embodiment, the maximum frequency of the AC line voltage and currentsignals is about 65 Hz, and the minimum sample rate is about 520 Hz.

One of the sensors 30 (which can be read by the DSP 26, in someembodiments) can sense a reference voltage that can be used to calculatean offset value for the analog inputs managed by the DSP 26. Thereference voltage is generally one-half of the DC rail voltage for theactive filters that process the signal. However, due to tolerances,temperature, and age, the reference voltage can vary slightly over time.Accordingly, the reference voltage can be measured by one of the sensors30 in order to account for any variances. In some embodiments, themaximum frequency of the reference voltage input can be about 8 Hz, andthe minimum sample rate can be about 64 Hz. In some embodiments, thereference voltage can be measured from any suitable point inside of thecontroller 24.

As shown in FIG. 1, the DSP 26 can include an event manager peripheralmodule 50 and a pulse-width modulation (PWM) output module 52. In someembodiments, the PWM output module 52 can include six PWM outputchannels in order to control one or more inverter drives 53 that cansupply three-phase power to the motor 16. The PWM output module 52 canuse a switching frequency of about 7.2 kHz plus or minus 1%. The PWMoutput waveforms can be symmetric and can be operated in a mannerconsistent with space vector pulse-width modulation (SVPWM) firingsequences, as will be described in more detail below. The event managerperipheral module 50 in the DSP 26 can control the PWM output waveforms,as well as their dead band timers.

The controller 24 can include one or more types of memory, for example,program memory (FLASH), primary data memory, and secondary non-volatiledata memory (e.g., a serial EEPROM 54). The EEPROM 54 can be connectedto the DSP 26. The controller 24 can also include a serial communicationlink 56 (e.g., an optically-isolated RS-232 link using a standard DB-9connector). In some embodiments, the serial communication link 56 can bepermanently or removably connected to an external device 58, such as apersonal computer, a laptop, or a personal digital assistant (PDA)running a terminal program 60 (e.g., Windows HyperTerminal). In oneembodiment, the parameters for serial communication can include 9600baud, 8 data bits, no parity, 1 stop bit, and XON/XOFF flow control. Insome embodiments, the data from the terminal program 60 can betransferred to the DSP 26 from the microcontroller 28. The data from theterminal program 60 can be limited to ASCII printable standardcharacters and can be interleaved with control data packets. The mostsignificant bit of the data byte being sent can be used by the DSP 26 toidentify the control data packets.

In some embodiments, a user can access the controller 24 with theexternal device 58 in order to configure drive parameters, to manuallyrun or stop the drives 46 to the motor 16, or to read one or more of thefollowing parameters: run/stop input status, current actual pressure,motor speed, bus voltage, bus current, total operating hours, poweredtime, running time, controller parameters, fault condition codes, faulthistory, software version, various parameter lists (e.g., control oroperational parameters), current drive frequency, input line voltage,input line current, input power, output power to motor, constantpressure setpoint, heat sink temperature, auxiliary output relay status,motor select switch setting, pressure level setpoint switch setting, lowband pressure, high band pressure, dry running status, proportionalgain, integral gain, calibrated minimum speed value, V/Hz curvesettings, limp mode thresholds, or any other desired information. Eachof these parameters can be stored in the EEPROM 54. Many of theseparameters will be discussed in more detail below with respect to FIGS.2-13. A user can also enter one or more of the following commands viathe external device 58 and the serial communication link 56: runpressure calibration (in order to manually run a self-calibrationprocedure), software reset, and default EEPROM (in order to set theparameters stored in the EEPROM back to their default settings).

In some embodiments, the serial communication link 56 can be used tolink any number of controllers 24 located throughout the world via anetwork (e.g., the Internet) to one another and/or to a monitoringsystem or station. For example, each controller 24 can be removable orpermanently connected to a computer or any other suitable deviceconfigured to communicate over the network with the monitoring system orstation. Each controller 24 can have an Internet-protocol address and/orcan be equipped with additional peripheral equipment for networkcommunications. The monitoring system or station can be used to monitorthe operation of the controllers 24, pumps 10, and/or motors 16; totroubleshoot the controllers 24, pumps 10 and/or motors 16; and/or tochange the operating parameters of the controllers 24.

As also shown in FIG. 1, the pump control system 14 can include aterminal 62. The terminal 62 can be connected to the controller 24. Insome embodiments, the terminal 62 and the controller 24 can be includedin a single housing and mounted in any suitable position in the waterdistribution system for access by a user. The housing can be arain-proof/weather-resistant enclosure and can be constructed of NEMA-4material. The terminal 62 can be directly or indirectly connected to theDSP 26.

The terminal 62 can include a pressure level setpoint switch 64, whichcan be used to set a constant pressure setpoint for the waterdistribution system. In one embodiment, a default constant pressuresetpoint (e.g., about 60 PSI) can be stored in the EEPROM 54. In oneembodiment, the pressure level setpoint switch 64 can have 16 positionsand the pressure settings can range from about 25 PSI to about 95 PSI in5-PSI increments. In some embodiments, if the pressure level setpointswitch 64 is in a certain position (such as the zero position), theconstant pressure setpoint can be loaded from the external device 58over the serial communication link 56 and can be stored in the EEPROM54. The constant pressure setpoint can then be recovered from the EEPROM54 when power is provided to the pump control system 14. In someembodiments, a user can set the constant pressure setpoint via theexternal device 58 and the serial communication link 56 according to anysuitable increments (e.g., 1 PSI increments, 0.5 PSI increments, 0.01PSI increments, etc.)

The controller 24 (e.g., using the PWM output module 52 of the DSP 26and the drives 46) can drive a three-phase induction motor using a spacevector pulse-width modulation (SVPWM) technique. Using the SVPWMtechnique, a commanded drive frequency can be converted to an angularvalue via numerical integration. The SVPWM output can provide precisecontrol of the magnitude and angle for the stator electromagnetic fieldof the AC induction motor. The angular value can be determined byintegrating the commanded drive frequency. The angular value can becombined with the desired output voltage level (which is a function ofthe speed of the motor 16) in order to provide the pulse timings for thethree-phase power converter.

The desired output voltage level can be calculated using a Volts-Hertz(V/Hz) curve, which can provide the output voltage level based on thedrive frequency. FIG. 13 illustrates an example of a V/Hz curve,including the following four parameters: offset voltage, rated voltage,maximum operating frequency, and rated frequency. The shape of the V/Hzcurve depends on the type of motor and can generally be determined fromthe motor speed and the voltage ratings. The rated voltage and the ratedfrequency are often displayed on the motor itself. In one embodiment,default settings of about 250 V RMS for the rated voltage and about 65Hz for the rated frequency can be stored in the EEPROM 54. Most motormanufacturers supply the offset voltage with the V/Hz curve. However, inone embodiment, default setting of about 10 V RMS for the offset voltagecan be stored in the EEPROM 54. The offset voltage is necessary toproduce the rated flux (and thus the rated torque) and is dependent onthe stator winding resistance and the rated magnetized current of themotor 16. At motor speeds greater than the rated frequency, the outputvoltage will generally remain at the rated voltage and the torque willdecrease (due to field weakening). In some embodiments, the maximumoperating frequency is only set to a value higher than the ratedfrequency if the motor is not fully loaded at the rated frequency (i.e.,the motor does not use the entire rated torque). In one embodiment, adefault setting of about 80 Hz for the maximum operating frequency canbe stored in the EEPROM 54.

In some embodiments, the V/Hz curves can be implemented via a firstorder curve with an upper limit and an offset term. In otherembodiments, a second order curve can be implemented to further optimizesystem performance. For each V/Hz curve, several parameters can bestored in the EEPROM 54 of the pump control system 14. The storedparameters can include slope, rated (maximum) voltage, offset voltage,maximum operating frequency, and minimum operating frequency. The slopevalue can be calculated based on the offset voltage, the rated voltage,and the rated frequency.

As shown in FIG. 1, the terminal 62 can include a motor select switch66, which can be used in some embodiments to configure the drives 46 forthe particular motor 16, for example, by selecting an appropriate V/Hzcurve. In one embodiment, the motor select switch 66 can be an8-position rotary switch with three digital output lines. In someembodiments, the motor select switch 66 can be used to select three setsof factory defaults for three specific types of motors. A user canposition the motor select switch 66 in order to select the V/Hz curve, avoltage limit, a current limit, and a power limit (i.e., motorprotection limits) for a particular type of motor. In one embodiment, auser can select one of the following types of motors using the motorselect switch 66: a 30 to 60 Hz motor; a 30 to 80 Hz motor; and a 30 to200 Hz motor. For a 30 to 60 Hz motor, the maximum voltage, the ratedfrequency, and the maximum frequency can each occur at about 60 Hz. Fora 30 to 80 Hz motor, the rated frequency can occur at about 65 Hz andthe maximum frequency can occur at about 80 Hz. Between 65 Hz and 80 Hz,the output voltage can be held constant at the maximum value. For a 30to 200 Hz motor, the maximum voltage, the rated frequency, and themaximum frequency can each occur at about 200 Hz.

The motor select switch 66 can also be used to select a custom motor,which can be manually configured by the user via the serialcommunication link 56. In some embodiments, a user can set a V/Hz curve,a voltage limit, a current limit, a power limit, a shutdown bus current,a limp mode bus current, and dry-running current setpoints for a custommotor. In one embodiment, for the V/Hz curve of a custom motor, a usercan specify each of the parameters shown in FIG. 13 via the serialcommunication link 56 (i.e., offset voltage, rated frequency, ratedvoltage, and maximum operating frequency). In one embodiment, the motorselect switch 66 must be in a zero position in order for the user to beallowed to change various settings via the serial communication link 56.In some embodiments, if a user makes changes to the V/Hz curves via theserial communication link 56, the changes will not take effect until thepump control system 14 is reset.

As shown in FIG. 1, the terminal 62 can also include a tank selectswitch 74 for providing a tank parameter input (such as tank size) tothe controller 24 and/or the EEPROM 54. The controller 24 can use thetank parameter input from the tank select switch 74 to select differentgains (e.g., a proportional gain, an integral gain, etc.) for use incontrolling the pump 10 and/or the motor 16.

As shown in FIG. 1, the terminal 62 can include one or more statusindicator light-emitting diodes (LEDs) (e.g., LED A and LED B). Thestatus indicator LEDs can be lit continuously or can flash at variousrates (e.g., slow, fast, or combination rates) to indicate the status ofthe drive 46 of the motor 16. In one embodiment, LED A (e.g., a greenLED) can be lit continuously when power is being applied, but thecontroller 24 is not driving the motor 16. LED A can flash slowly whenthe controller 24 is driving the motor 16 and the controller 24 is notoperating in a limp mode (as will be described in detail below withrespect to FIG. 4). LED A can flash quickly if the controller 24 isdriving the motor 16 in a limp mode. LED A can also flash at a 50% dutycycle during a 30-second power-up delay.

In one embodiment, LED B (e.g., a red LED) can be used to indicatevarious fault conditions to a user. Each of the various fault conditionswill be described in detail below with respect to FIGS. 5-11. In oneembodiment, when no fault conditions have occurred since the last reset(or since the fault conditions were last cleared), LED B is not lit. Ifa fault condition occurs, LED B can flash at a certain rate based on thetype of fault condition. LED B can continue to flash at the particularrate until a different fault condition occurs or until a user presses aclear fault LED button 68 on the terminal 62. The clear fault LED button68 can be a normally-open push-button contact that can halt the flashingof LED B when the push-button contact is closed. In one embodiment, thefault conditions and/or the fault log are not cleared when a userpresses the clear fault LED button 68. LED B can be continuously lit ifa certain number of fault conditions (such as 15 fault conditions) hasoccurred within a certain time period (such as 30 minutes). In someembodiments, the flash rate of LED B only indicates a general class ofthe fault conditions. However, in other embodiments, the flash rate ofLED B can indicate specific individual fault conditions. In oneembodiment, LED B is lit when a fault condition is occurring, but thecontroller 24 shuts off LED B if the fault condition is no longeroccurring. In other words, LED B does not remain lit continuously oncethe fault condition is no longer occurring, even if the pump controlsystem 14 does not include a clear fault LED button 68 or a user has notpushed the clear fault LED button 68.

The terminal 62 can include an auxiliary relay 70, as shown in FIG. 1,having a programmable output. The auxiliary relay 70 can be used tocontrol any external devices and/or circuits. In some embodiments, ifenabled, the auxiliary relay 70 can report the state of the motor 16 andcan be closed whenever the controller 24 is driving the motor 16. If notenabled, the output of the auxiliary relay 70 can be off. A user canenable or disable the auxiliary relay 70 via the serial communicationlink 56 and the external device 58. A user can program a minimum timeperiod (e.g., 500 ms) during which the auxiliary relay 70 is energizedbefore being de-energized. A user can also program a minimum time period(e.g., 500 ms) that the auxiliary relay 70 must be de-energized beforebeing re-energized. In addition, a user can program a minimum timeperiod (e.g., 500 ms) that the motor 16 must be off before the auxiliaryrelay 70 is allowed to de-energize. In general, the auxiliary relay 70can be programmed to provide any suitable output signal based on anycondition or parameter (e.g., pressures, currents, voltages, limp modestatus) that can be determined or monitored by the controller 24. Forexample, the auxiliary relay 70 can be connected to a second, boosterpump or a pump that provides doses of chemicals to a pool or spa system.The auxiliary relay 70 can be programmed to provide any suitable outputfor controlling the second, booster pump (such as operating the boosterpump when the actual pressure in the water distribution system fallsbelow a certain threshold). The auxiliary relay 70 can be programmed toprovide any suitable output for controlling the doses of chemicals tothe pool or spa system (such as providing a chemical dose after acertain number of hours of operation).

The terminal 62 can include one or more power factor correction (PFC)controls (e.g., PFC A and PFC B, as shown in FIG. 1). PFC A can be usedto select a target DC bus voltage (e.g., 350 V DC or 380 V DC). PFC Bcan be used to enable or disable the hardware-based PFC module 34 in thecontroller 24. The terminal 62 can also include a PTC relay 72 that canbe used to enable or disable a PTC pre-charge circuit for the DC busline. The PFC module 34 can be enabled when the PTC pre-charge circuitis switched out and the bus is considered started.

The controller 24 can be programmed to operate the pump control system14 in order to perform several functions and/or methods according toseveral embodiments of the invention, as shown and described below withrespect to FIGS. 2-12. In some embodiments, the DSP 26 of the controller24 is programmed to perform each of the functions and/or methods shownand described with respect to FIGS. 2-12.

Referring first to FIG. 2, the controller 24 can perform aself-calibration procedure when the pump 10 is initially installed(e.g., when a submersible pump is lowered into the ground, when a poolor spa pump is installed, when a pump is connected to a waterdistribution system, etc.). A user can perform a number of tasks duringthe installation of the pump 10. For example, those tasks can includethe following: configuring any rotary switch settings, connecting apressure feedback, connecting run/stop input terminals to externalswitches and/or devices (e.g., a device can provide an output toenergize a relay or a circuit can be electronically opened or closed),connecting the motor leads, connecting the motor chassis to earthground, and connecting the line power (single-phase 115 V RMS or 230 VRMS). Once one or more of these tasks are completed and power isinitially provided to the pump 10 and/or the motor 16, the controller 24can begin (at 100) the self-calibration procedure. Power can be providedwhen a user connects the AC bus line 22 to the controller 24, whichprovides power to the power factor correction and converter/rectifiermodule 34, to the DC bus line 48, to the drives 46, and to the pump 10and/or the motor 16.

In some embodiments, all user valves or outputs in the waterdistribution system are shut and the pressure in the water tank 12 isbelow the constant pressure setpoint before the controller 24 begins theself-calibration procedure. If the pressure in the water tank 12 isgreater than the constant pressure setpoint, the controller 24 can delaythe self-calibration procedure until the pressure in the water tank 12falls below the constant pressure setpoint. In some embodiments, thecontroller 24 can wait for another time period (such as five seconds)after the pressure in the water tank 12 falls below the constantpressure setpoint, during which time period flow in the waterdistribution system can be shut off (in order to prevent inaccuratecalibration results).

The self-calibration procedure, in some embodiments, can include aregulation mode during which the controller 24 operates the pump 10 toraise the pressure in the water tank 12 to a desired tank pressuresetpoint. Once the pressure in the water tank 12 has been raised to thedesired tank pressure setpoint or if the pressure in the water tank 12was already at the desired tank pressure setpoint when the regulationmode began, the self-calibration procedure can continue to a searchmode. In the search mode, the controller 24 can determine a searchpressure by adding a pressure value (e.g., 1 PSI) to the currentpressure in the water tank 12.

Referring to FIG. 2, in the search mode, the controller 24 can beginoperating (at 102) the motor 16 in a forward direction (i.e., thedirection that supplies water to the water tank 12 and/or to the waterdistribution system) at a relatively low speed (e.g., a minimumoperating speed of 30 Hz). The controller 24 can sense (at 104) apressure in the water distribution system. In one embodiment, thecontroller can read the pressure sensor 18 positioned in an outlet port20 between the pump 10 and the water tank 12. The controller 24 candetermine (at 106) whether the pressure has increased by a pressureincrement, such as 1 PSI or any other suitable pressure increment. Ifthe sensed pressure has not increased by the pressure increment, thecontroller 24 can increase (at 108) an operating frequency of the motorby a frequency increment, such as 1 Hz. In other words, the controller24 can begin operating the motor 16 at the motor's minimum operatingspeed and slowly increase the motor speed until the pressure in thewater tank 12 exceeds the search pressure. In some embodiments, thecontroller 24 can increase the motor speed, pause for a time period toallow the water distribution system to stabilize (e.g., for 10 seconds),and then resume increasing the motor speed. The controller 24 can pausethe increasing of the motor speed to allow the water distribution systemto stabilize any suitable number of times during the self-calibrationprocedure.

If the sensed pressure has increased by the pressure increment, thecontroller 24 can set (at 110) one or more gain values (e.g., aproportional gain, an integral gain, or any other system gain) based onthe current speed of the motor 16. In some embodiments, the controller24 can access a look-up table in order to find the appropriate gainvalues for the current speed of the motor 16. The controller 24 can thenstore (at 112) the speed of the motor 16 as the minimum calibrated speedvalue or the minimum non-zero flow speed. In some embodiments, thecontroller 24 can decrease or increase the current speed of the motor 16by one or more frequency increments (or by any other suitable incrementor value) and store the decreased or increased speed value as theminimum non-zero flow speed. For example, the controller 24 can access alook-up table to find an appropriate minimum non-zero flow speed for thecurrent motor speed. The minimum non-zero flow speed can be stored inany suitable system memory, such as the EEPROM 54. The search mode canend when the motor 16 is spinning at or above the minimum non-zero flowspeed, which causes flow into the water tank 12 and raises the pressurein the water tank 12. The minimum non-zero flow speed can be a functionof the pump 10, the motor 16, a total head pressure at the pump 10(which can be a function of a pressure setpoint for the water tank 12and a depth of a well, if the pump 10 is being installed in a well), andany other sizes, features, or requirements of the water distributionsystem within which the pump 10 is installed. It should also be notedthat even after the self-calibration procedure is used to set theminimum non-zero flow speed, a user can change the minimum non-zero flowspeed via the external device 58 and the serial communication link 56.

In addition to the self-calibration procedure described above, in someembodiments, the controller 24 can compute an idle speed for the waterdistribution system. The controller 24 can also set gains for an actualpressure regulation proportional/integral control loop. The gains can bebased on the minimum non-zero flow speed, and can be determined, forexample, by accessing a look-up table of empirical values. In addition,the controller 24 can initialize various portions of the pump controlsystem 14 by setting registers, inputs/outputs, and/or variables.

After the self-calibration procedure is complete, the controller 24 canuse the minimum non-zero flow speed as the initial speed for the motor16 whenever the motor 16 is initially turned on. In other words, when apressure in the water distribution system drops below a certain level(as will be described in detail below with respect to FIG. 3), thecontroller 24 can use the minimum non-zero flow speed as the initialspeed for the motor 16, rather than using an initial speed close to zeroand ramping the speed up to a more effective speed for the particularwater distribution system. Accordingly, the minimum non-zero flow speedcan be generated by the controller 24 for each particular waterdistribution system.

In addition to performing a self-calibration procedure when the pump 10is installed, the controller 24 can perform a self-calibration procedurewhenever power and a new constant pressure setpoint are provided to thepump control system 14. When power is provided to the drive 46 for themotor 16, the pump control system 14 determines if the current constantpressure setpoint is the same as the previous constant pressuresetpoint. The previous constant pressure setpoint can be stored inmemory, such as the EEPROM 54. In some embodiments, a user can provide anew constant pressure setpoint for the water distribution system byusing the external device 58 connected to the controller 24 via theserial communication link 56. In other embodiments, the controller 24can automatically perform a self-calibration procedure whenever thedrive 46 is provided with power and a new input from the pressuresetpoint switch 64 and/or the motor select switch 66. For example, a 30second delay period during the power-up process can be used by thecontroller 24 to check the switches 64 and/or the switch 66 to determineif the settings have been changed. If the settings have been changed,the controller 24 can automatically perform a self-calibrationprocedure. Also, if the motor select switch 66 is set for customparameters (e.g., as input by the user via the serial communication link56), the user can manually request the self-calibration procedure afterupdating the custom parameters. In some embodiments, a user can manuallyor automatically request an additional self-calibration procedure (e.g.,via the serial communication link 56). If the user requests anadditional self-calibration procedure, the controller 24 can stopoperating, but it may not be necessary for the controller 24 topower-down before performing the self-calibration procedure.

In some embodiments, when the motor 16 is started from a stopped state,the controller 24 can use a “soft start” algorithm. In one embodiment,the soft start algorithm can be an acceleration of the motor 16 from 0to about 30 Hz in about 1 second. The soft start algorithm can also bedefined by a self-lubrication specification for the pump 10 and/or themotor 16.

In some embodiments, when the motor 16 is commanded to stop while in arunning state, the controller 24 can use a “soft stop” algorithm. Thecontroller 24 can use a soft stop algorithm when the commanded drivefrequency is below about 30 Hz. The voltage provided to the motor 16 canbe ramped down to zero volts as quickly as possible without causingmotor regeneration. The controller 24 can also use a soft stop algorithmto prevent rapid cycling when the water demand is slightly less than theminimum flow rate of the pump 10 for a particular water tank 12 and welldepth. In this case, a soft stop algorithm can allow the motor 16 toidle at a minimum operating speed for about 10 seconds after the targetpressure is reached and the water demand has stopped. This type of softstop algorithm can mitigate constant on/off cycling of the pump 10during times of low water demand (e.g., when a leak has occurred).

Referring to FIG. 3, the controller 24 can regulate the speed of themotor 16 in order to maintain a constant or near constant water pressurein the water distribution system. The controller 24 can use aproportional/integral (PI) control loop to generate an updated speedcontrol command (i.e., a PI control output). The controller 24 canmeasure (at 150) an actual pressure in the water distribution system.Generally, the pump control system 14 remains idle until the pressure inthe water distribution system drops below a pre-set pressure value(which can also be referred to as the constant pressure setpoint). Morespecifically, the controller 24 can determine (at 152) whether theactual pressure is less than a pre-set pressure value. If the actualpressure is less than the pre-set pressure value, the controller 24 cansubtract (at 154) the actual pressure from a desired pressure todetermine a pressure error. The controller 24 can determine (at 156) anintegral of the pressure error and can multiply (at 158) the integral byan integral gain (e.g., a gain of 18) to determine a first value (e.g.,the integral component of the PI control output). The controller 24 canmultiply (at 160) the pressure error by a proportional gain (e.g., again of 80) to determine a second value (e.g., the proportionalcomponent of the PI control output). The controller 24 can sum (at 162)the first value and the second value and can generate (at 164) anupdated speed control command based on the sum of the first value andthe second value (e.g., the sum of the proportional and integralcomponents of the PI control output). In some embodiments, the speedcontrol command can represent a motor drive frequency. Based on theupdated speed control command, the controller 24 can increase ordecrease (at 166) the speed of the motor 16 to maintain a constant ornear constant pressure setpoint. In this manner, the controller 24 canregulate the speed of the motor 16 in real-time or near real-time.

In some embodiments, the pump control system 14 can provide integralcontrol in order to provide a zero steady-state error. In other words,if the motor 16 is spinning and the pump 10 is providing flow, theactual pressure can be equal to the constant pressure setpoint and themotor 16 can continue to operate. However, if the pump control system 14provides only proportional control, the actual pressure will be slightlylower than the constant pressure setpoint. This slightly low pressureoccurs because proportional control is error driven (i.e., there must besome error to generate a non-zero proportional output). Thus, if thepump 10 and the motor 16 are spinning and supplying water flow as theactual pressure is equal to or approaching the constant pressuresetpoint, the proportional output is zero and the controller 24 does notincrease the speed of the motor to meet or exceed the constant pressuresetpoint. As a result, the actual pressure is slightly lower than theconstant pressure setpoint if the pump control system 14 provides onlyproportional control.

When the pressure in the water distribution system exceeds the constantpressure setpoint, the controller 24 can stop driving the motor 16 aftera predetermined increase (e.g., 1 PSI) in pressure above the pre-setpressure value (which can also be referred to as the constant pressuresetpoint). In some embodiments, there is a hysteresis band above andbelow the constant pressure setpoint. For example, a high band pressurevalue can be 4 PSI greater than the constant pressure setpoint and a lowband pressure value can be 1 PSI less than the constant pressuresetpoint. However, in some embodiments, a user can configure the highand low band pressure values, and the user can store the high and lowband pressure values in memory (such as an EEPROM).

In some embodiments, the actual pressure in the water distributionsystem is monitored constantly or almost constantly, but no action istaken until the actual pressure falls below the low band pressure. Oncethe motor 16 starts spinning, normal operation with the PI control loop(as described above with respect to FIG. 3) can commence and cancontinue until the actual pressure exceeds the high band pressure oruntil the PI control output is zero. With the motor 16 spinning, thecontroller 24 can continuously or semi-continuously regulate (e.g.,regulate at a suitable sample rate) the motor speed using the PI controlloop, as long as the actual pressure remains below the high bandpressure value. The drives 46 to the motor 16 can be set to zero whenthe actual pressure exceeds the high band pressure value. During normaloperation, the actual pressure can remain constant or near constant at avalue close to the constant pressure setpoint, as long as water usagedoes not exceed the capabilities of the pump 10 and/or the motor 16.However, large instantaneous changes in flow requirements may result invariations from the constant pressure setpoint and/or the high and lowband pressure values.

The controller 24 can perform low-pressure undershoot and low-pressurerecovery time procedures during instances of increased flow. Forexample, the controller 24 can set appropriate gains in order to recoverfrom a large flow demand after which the motor 16 cannot instantaneouslyspeed up enough. The controller 24 can also perform a high-pressureovershoot procedure during instances of decreased flow (including zeroflow). For example, the controller 24 can set appropriate gains in orderto recover when a valve is closed so quickly that flow cannot be stoppedquickly enough.

As discussed above, in order to provide high performance control, thecontroller 24 can take into account the motor speed required for thepump 10 to open any check valves and produce a positive water flow inthe water distribution system. This motor speed can be determined duringthe self-calibration procedure described above with respect to FIG. 2(or during an automatic or manual calibration procedure conductedsubsequent to the initial installation of the pump 10) and can bereferred to as the minimum calibrated speed value or the minimumnon-zero flow speed. In some embodiments and/or particular situations,the controller 24 can provide an actual motor command to the motor 16equal to the sum of the speed control command (i.e., the PI controloutput as described above with respect to FIG. 3) and the minimumnon-zero flow speed. As a result, small pressure errors are capable ofturning the motor 16 on, which allows more accurate pressure regulationduring low-flow states, as well as rapid responses for large transientincreases in flow demand.

In some embodiments, the controller 24 can provide a pump motorfrequency of zero in certain situations. For example, as describedabove, if the actual pressure exceeds the high band pressure value, thedrive to the motor 16 can be ramped down to a zero frequency. As anotherexample, when the actual pressure has reached the constant pressuresetpoint and no flow is occurring, the PI control output may fall belowa low threshold. When the PI control output falls below the lowthreshold, the controller 24 can set the motor output at an idle speedfor an idle time period, such as ten seconds. The idle speed can be aspeed below the minimum non-zero flow speed that can keep the motorspinning without opening any check valves or causing water to flow fromthe pump 10. During the idle time period, if a drop in pressure occurs(i.e., a demand for flow occurs), the controller 24 can automaticallyswitch from the idle mode to the normal pressure regulation mode asdescribed with respect to FIG. 3. During these transitions, the motor 16is already running at a speed near the minimum non-zero flow speed,which allows a quicker flow response than starting the motor 16 from azero speed. However, if the idle time period has elapsed without a dropin pressure (i.e., without a demand for flow), the drive to the motor 16can be ramped down to a zero frequency.

Referring to FIG. 4, the controller 24 can operate the motor 16 in alimp mode in a number of different situations. The controller 24 canmeasure one or more of the following parameters: the bus current (at200); the bus voltage (at 202); the line current (at 204); and the heatsink temperature from the temperature sensor 19 (at 206). The controller24 can determine (at 208) whether the bus current is greater than a limpcurrent limit setting (e.g., about 7 amps). If the bus current isgreater than the limp current limit setting, the controller 24 can drive(at 210) the motor 16 in a limp mode. In the limp mode, the controller24 can reduce (at 212) one or both of an output voltage provided to themotor 16 and an operating frequency of the motor 16 (e.g., reduce theoutput voltage and the operational frequency along the V/Hz curve of themotor 16).

The controller 24 can also determine (at 214) whether the bus voltage isless than a programmed threshold (e.g., about 275 volts). If the busvoltage is less than the programmed threshold, the controller 24 candrive (at 210) the motor 16 in the limp mode. The controller 24 canfurther determine (at 216) whether the line current is greater than aprogrammed threshold (e.g., about 26 amps). If the line current isgreater than the programmed threshold, the controller 24 can drive (at210) the motor 16 in the limp mode.

The controller 24 can still further determine (at 218) whether the heatsink temperature read from the temperature sensor 19 is greater than alimp temperature limit setting (e.g., about 60 degrees Celsius). If thetemperature is greater than the limp temperature limit setting, thecontroller 24 can drive (at 210) the motor in the limp mode. In someembodiments, the controller 24 can set the limp temperature limitsetting during a power-up procedure for the motor drive (e.g., a 30second power-up procedure). For example, the controller 24 can determinewhether the input voltage from the AC bus line 22 is 115 V or 230 V. Inone embodiment, if the input voltage is 115 V, the controller 24 can setthe limp temperature limit setting to 51 degrees Celsius, and if theinput voltage is 230 V, the controller 24 can set the limp temperaturelimit setting to 60 degrees Celsius. However, in some embodiments, auser can change the limp temperature limit setting, for example, usingthe external device 58 and the serial communication link 56. If the userchanges the limp temperature limit setting, the controller 24 can changea control bit in the EEPROM 54 to indicate that the user has changed thelimp temperature limit setting. During subsequent power-up procedures orpower cycles, the controller 24 can recognize that the control bit hasbeen changed. The controller 24 can then use the limp temperature limitsetting defined by the user, rather than using one of the default limptemperature limit settings that correspond to the input voltage.

Once the controller 24 is operating the motor 16 in the limp mode, thecontroller 24 can attempt to continue operating (at 220) the motor drivewithin specified operational limits. The controller 24 can determine (at222) whether the bus current, the bus voltage, the line current, and/orthe heat sink temperature have returned to within the specifiedoperational limits. If the motor drive cannot operate within thespecified operational limits or if the controller 24 has been operatingin the limp mode for too long (i.e., excessive limp), the controller 24can shut down (at 224) the motor drive. In some embodiments, when thecontroller 24 operates the motor 16 in the limp mode, the controller 24does not generate or store a fault condition code in the fault log (asdescribed below with respect to FIG. 15). When the motor 16 is operatingin the limp mode, pressure regulation may not be maintained, but systemfailure or shutdown can often be prevented.

As shown and described with respect to FIGS. 5-11, the controller 24 candetect a number of fault conditions and can attempt to prevent damage toitself and/or the motor 16 and/or the pump 10. In general, the followingseveral paragraphs describe each of the fault conditions, the conditionsunder which the fault condition occurs, and the action the controller 24takes after sensing the fault condition. FIG. 12 illustrates a method ofcreating a fault log in order to store information regarding each of thefault conditions.

Referring to FIG. 5, the controller 24 can determine whether a busover-voltage fault condition or a bus under-voltage fault condition hasoccurred by first measuring (at 250) the bus voltage of the DC bus line48. The controller 24 can determine (at 252) whether the bus voltage isgreater than an upper limit (e.g., about 450 volts) or less than a lowerlimit (e.g., about 250 volts). If the bus voltage is greater than theupper limit or less than the lower limit, the controller 24 can generate(at 254) a fault condition code. The controller 24 can shut down (at256) the drive 46 to the motor 16 for a time period (e.g., about 30seconds). The controller 24 can attempt to restart (at 258) the drive 46after the time period has elapsed.

Referring to FIG. 6, the controller 24 can determine whether a busover-current fault condition has occurred by first measuring (at 300)the bus current of the DC bus line 48. The controller 24 can determine(at 302) whether the bus current is greater than an upper limit (e.g.,about 25 amps). If the bus current is greater than the upper limit, thecontroller 24 can generate (at 304) a fault condition code. Thecontroller 24 can shut down (at 306) the drive 46 to the motor 16 for atime period (e.g., about 30 seconds). The controller 24 can attempt torestart (at 308) the drive 46 to the motor 16 after the time period haselapsed.

Referring to FIG. 7, the controller 24 can determine whether adry-running fault condition has occurred by sensing (at 350) a first buscurrent value from the DC bus line 48. The controller 24 can determine(at 352) whether the first bus current value is less than a pre-setthreshold (e.g., about 1.5 amps). If the first bus current value is lessthan the pre-set threshold, the controller 24 can start (at 354) atimer. After a pre-set time period (e.g., about 1 second) has elapsed,the controller 24 can sense (at 356) a second bus current value. Thecontroller 24 can determine (at 358) whether the second bus currentvalue is still less than the pre-set threshold. If the second buscurrent is still less than the pre-set threshold, the controller 24 candetermine (at 360) whether the motor drive is operating at full speed.If the motor drive is operating at full speed, the controller 24 cangenerate (at 362) a fault condition code. The controller 24 can shutdown (at 364) the motor drive for a time period (e.g., about 30seconds). The controller 24 can attempt to restart (at 366) the motordrive after the time period has elapsed.

Referring to FIG. 8, the controller 24 can determine whether anover-temperature fault condition has occurred by sensing (at 400) afirst temperature value of a heat sink (e.g., sensing a temperature ofthe heat sink 21 of the controller 24 with the temperature sensor 19).The controller 24 can determine (at 402) whether the first temperaturevalue is greater than a temperature upper limit (e.g., about 70s degreesCelsius). If the first temperature value is greater than a temperatureupper limit, the controller 24 can generate (at 404) a fault conditioncode. The controller 24 can also shut down (at 406) the motor drive.After the motor drive has been shut down, the controller 24 can sense(at 408) a second temperature value of the heat sink. The controller 24can determine (at 410) whether the second temperature value is less thana limp mode temperature limit (e.g., about 60 degrees Celsius). If thesecond temperature value is less than the limp mode temperature limit,the controller 24 can attempt (at 412) to restart the motor drive. Ifthe second temperature value is not less than the limp mode temperaturelimit, the controller 24 can continue to sense (at 408) the heat sinktemperature until the heat sink temperature falls below the limp modetemperature limit.

Referring to FIG. 9, the controller 24 can determine whether ahigh-speed jamming fault condition has occurred by sensing a first buscurrent value of the DC bus line 48 and by sensing the motor speed. Asused herein and in the appended claims, the term “motor speed” refers toone or more of an actual speed of the motor 16, a commanded motor speed,and/or a commanded motor frequency. The controller 24 can determine (at450) whether the first bus current value is greater than a bus currentupper limit (e.g., about 15 amps) and whether the motor speed is greaterthan or equal to a high-speed limit. If the first bus current value isless than the bus current upper limit and/or if the motor speed is lessthan the high-speed limit, a high-speed jamming fault condition has notoccurred and the controller 24 can continue to operate (at 452) themotor 16 in the forward direction. If the first bus current value isgreater than a bus current upper limit and if the speed of the motor isgreater than or equal to a high-speed limit, the controller 24 canincrement (at 454) a counter and set (at 454) a timer. The controller 24can determine (at 456) whether the counter has been incremented above anincrement limit (e.g., about five times) within a first time period(e.g., about five minutes). If the counter has not been incrementedabove the increment limit within the first time period, the controller24 can return to sensing (at 450) the bus current value and the motorspeed. If the counter has been incremented above the increment limitwithin the first time period, the controller 24 can attempt to operate(at 458) the motor 16 in a reverse direction. The controller 24 cansense a second bus current value while the motor is operating in thereverse direction. The controller 24 can determine (at 460) whether thesecond bus current value is also greater than the bus current upperlimit. If the second bus current value is also greater than the buscurrent upper limit (i.e., there is also a bus over-current faultcondition in the reverse direction), the controller 24 can generate (at462) a fault condition code and shut down the motor drive. If the secondbus current value is less than the bus current upper limit (i.e., thereis not a bus over-current fault condition in the reverse direction), thecontroller 24 can operate (at 464) the motor 16 in the reverse directionfor a second time period (e.g., about 30 seconds). Once the second timeperiod has elapsed and presumably the foreign object is cleared, thecontroller 24 can attempt (at 452) to operate the motor in the forwarddirection. In some embodiments, the controller 24 can also monitor for ahigh-speed jamming fault condition by determining the change in buscurrent with respect to a change in time (e.g., in order to detect rapidchanges in the bus current that may indicate a high-speed jamming faultcondition).

Referring to FIG. 10, the controller 24 can determine whether alow-speed jamming fault condition has occurred by sensing a first buscurrent value of the DC bus line 48 and sensing the motor speed. Thecontroller 24 can determine (at 500) whether the first bus current valueis greater than a programmed threshold (e.g., about 7 amps) and whetherthe speed of the motor is less than a motor speed low threshold. If thefirst bus current value is greater than a programmed threshold and ifthe speed of the motor is less than a motor speed low threshold, thecontroller 24 can attempt to operate (at 502) the motor 16 in a reversedirection. The controller 24 can sense a second bus current value whilethe motor is operating in the reverse direction. The controller 24 candetermine (at 504) whether the second bus current value is also greaterthan the programmed threshold. If the second bus current value is alsogreater than the programmed threshold (i.e., there is also a low-speedjamming fault condition in the reverse direction), the controller 24 cangenerate (at 506) a fault condition code and can shut down (at 506) themotor drive. If the second bus current value is less than the programmedthreshold (i.e., there is not a low-speed jamming fault condition in thereverse direction), the controller 24 can operate (at 508) the motor 16in the reverse direction for a time period (e.g., about 30 seconds).After the time period has elapsed and presumably the foreign object iscleared, the controller 24 can attempt to operate (at 510) the motor 16in the forward direction.

Referring to FIG. 11, the controller 24 can monitor the pressure sensor18 or any other pressure sensors in the water distribution system todetect pressure sensor failure. The controller 24 can detect a firstpressure sensor signal by reading (at 550) the pressure sensor 18. Thecontroller 24 can compare (at 552) the first pressure sensor signal to asense range. The controller 24 can determine (at 554) whether the firstpressure sensor signal is outside of the sense range (e.g., the pressuresensor itself may be shorted, not connected, or open, or a cableconnected to the pressure sensor may be shorted, not connected, oropen). If the pressure sensor signal is outside of the sense range, thecontroller 24 can shut down (at 556) the motor drive. The controller 24can determine (at 558) whether the pressure sensor has been replaced orrepaired by attempting to detect a second pressure sensor signal afterpower has be reapplied to the motor drive. If the controller 24 does notsense a second pressure sensor signal, the controller 24 can allow (at560) the motor drive to remain shut down until a second pressure signalis detected.

Also referring to FIG. 11, the controller 24 can determine whether thepressure sensor 18 is failing due to a short condition with respect tothe power supply for the pressure sensor 18. The controller 24 candetect a pressure sensor signal by reading (at 550) the pressure sensor18. The controller 24 can determine (at 562) whether the pressure sensorsignal indicates that the power supply is shorted. If the pressuresensor signal does indicate that the power supply is shorted, thecontroller 24 can disable (at 564) the power supply. The controller 24can determine (at 566) whether the shorted power supply is the selectedsensor input for the pressure sensor 18. If the shorted power supply isthe selected sensor input for the pressure sensor 18, the controller 24can generate (at 568) a fault condition code and can shut down (at 568)the motor drive. If the shorted power supply is not the selected sensorinput for the pressure sensor 18, the controller 24 can disable (at 570)the shorted power supply and/or ignore (at 570) the fault condition.

The controller 24 can determine whether a power device/ground fault hasoccurred by determining whether a power-device protection interrupt(PDPINTA) input has been generated. The PDPINTA input can be generatedby hardware (i.e., ground current, damaged IGBT, shorted output, etc.)and sent to an interrupt pin on the DSP 26. At the detection of thisfault condition, the controller 24 can shut down the motor drive. Thecontroller 24 can restart the motor drive after a time period (e.g.,about 30 seconds). If three PDPINTA inputs occur since the lastpower-up, the controller 24 can turn the motor drive off. In oneembodiment, the controller 24 does not turn the motor drive on againuntil a power cycle causes the fault condition to clear.

Referring to FIG. 12, the controller 24 can create a fault log that auser can access in order to monitor the operation of the controller 24,the pump 10, and/or the motor 16. The controller 24 can sense (at 600)that a new fault condition has occurred (as described above with respectto any one of FIGS. 5-11). The controller 24 can determine (at 602) thefault condition code corresponding to the new fault condition and canincrement a counter. The controller 24 can determine (at 604) whetherthe counter has been incremented above an increment limit (e.g., 15fault condition codes). If the counter has been incremented above theincrement limit, the controller 24 can store the new fault conditioncode by overwriting (at 606) one of the old fault condition codes. Ifthe counter has not been incremented above the increment limit, thecontroller 24 can store (at 608) the new fault condition code in a newmemory location. The controller 24 can also store (at 610) a time stampof the current powered time when the new fault condition code is logged.Using the serial communication link 56 and the external device 58, auser can retrieve (at 612) the new fault condition code and the oldfault condition codes (which, in some embodiments, is the 15 most-recentfault condition codes). In other embodiments, a user can retrieve thefault condition codes using other technologies, such as various forms ofwireless communication (e.g., cellular or infrared wirelesscommunication).

The controller 24 can operate one of the LEDs (e.g., LED B shown in FIG.1, which can be a red LED) in order to indicate to a user that one ormore fault conditions have occurred. If no faults have occurred sincethe last reset (either by a power cycle or by a user pressing the clearfault LED button 68 or by the system), the controller 24 can keep LED Bin a de-energized state. The controller 24 can provide an indication ofthe most recent faults by flashing LED B at various rates. The flashrate can depend on the category or group of the most recent faults. Forexample, LED B can flash slowly for dry-running, bus over-voltage, andbus under-voltage fault conditions. Also, LED B can flash quickly forbus over-current, power device/ground fault, and jam detection faultconditions. In addition, LED B can flash at a combination rate forpressure sensor failure and over-temperature fault conditions. Thecontroller 24 can keep LED B lit continuously if too many faultsconditions occur within a set time period (e.g., 15 fault conditionswithin about 30 minutes). However, in one embodiment, LED B is lit whena fault condition is occurring, but the controller 24 shuts off LED B ifthe fault condition is no longer occurring. In other words, LED B doesnot remain lit continuously once the fault condition is no longeroccurring, even if the pump control system 14 does not include a clearfault LED button 68 or a user has not pushed the clear fault LED button68. If the power is cycled or a user presses the clear fault LED button68, the controller 24 can reset the fault counter and the fault timer.In some embodiments, when any fault condition occurs, if the fault timeris greater than about 30 minutes, the controller 24 can reset the faulttimer to zero. In some embodiments, after a fault condition stops themotor 16 (with the exception of over-temperature, power device/groundfault, and pressure sensor fault conditions), the controller 24 can waitabout 30 seconds and then attempt to restart the motor 16.

It should be understood that although the above description refers tothe steps shown in FIGS. 2-12 in a particular order, that the scope ofthe appended claims is not to be limited to any particular order. Thesteps described above can be performed in various different orders andstill fall within the scope of the invention. In addition, the variouspressure, voltage, and current thresholds, values, and time periods ordurations discussed above are included by way of example only and arenot intended to limit the scope of the claims.

In general, all the embodiments described above and illustrated in thefigures are presented by way of example only and are not intended as alimitation upon the concepts and principles of the present invention. Assuch, it will be appreciated by one having ordinary skill in the artthat various changes in the elements and their configuration andarrangement are possible without departing from the spirit and scope ofthe present invention as set forth in the appended claims.

1. A method of detecting a foreign object obstruction in a pool or spa, the pool or spa being coupled to a pump and a motor, the method comprising: measuring a voltage and a current being provided to the motor; determining a power factor based on the voltage and the current; determining whether a fault condition has occurred due to the presence of a foreign object obstruction in the pool or spa based on the voltage, the current, and the power factor; shutting down the motor when the fault condition has occurred; and indicating to a user that the fault condition has occurred.
 2. The method of claim 1, wherein the step of shutting down the motor comprises shutting down a motor drive associated with the motor.
 3. The method of claim 1, wherein the step of shutting down the motor comprises shutting down a variable speed motor drive of the motor.
 4. The method of claim 1, wherein determining the power factor comprises operating a power factor correction module to regulate the power factor.
 5. The method of claim 1, wherein determining the power factor comprises determining the power factor to be 0.9 or greater.
 6. The method of claim 1, wherein determining the power factor comprises determining the power factor to be 0.98 or greater.
 7. The method of claim 1, wherein determining the power factor comprises determining a DC bus voltage associated with the motor to be a target DC bus voltage value over an operational range of the motor.
 8. The method of claim 7, wherein the target DC bus voltage value is about 350 V.
 9. The method of claim 7, wherein the target DC bus voltage value is about 380 V.
 10. The method of claim 1, wherein measuring the current comprises measuring the current on a DC bus.
 11. The method of claim 10, wherein determining whether the fault condition has occurred comprises comparing the current on the DC bus to a DC bus current threshold.
 12. The method of claim 1 and further comprising measuring a current being provided to the motor by sensing an AC line current, wherein determining whether the fault condition has occurred comprises comparing the AC line current to an AC line current threshold.
 13. The method of claim 1, wherein the pump circulates fluid through the pool or spa.
 14. The method of claim 13, further comprising determining whether the fault condition has occurred due to the presence of a foreign object obstruction to circulating the fluid through the pool or spa.
 15. The method of claim 1, wherein determining whether the fault condition has occurred due to the presence of a foreign object obstruction includes determining a high-speed fault condition by determining a change in bus current with respect to time.
 16. The method of claim 1, wherein the motor is configured to operate at multiple frequencies and the motor includes a drive configured to output a voltage level based upon an operating frequency of the motor.
 17. The method of claim 1, wherein determining the power factor comprises operating a power factor correction module to regulate the power factor to a constant value under varying pump loads.
 18. The method of claim 1, wherein determining the power factor comprises operating a power factor correction module to regulate the power factor and voltage to constant values under varying pump loads.
 19. The method of claim 1, wherein determining the power factor comprises operating a power factor correction module to regulate the power factor over an operational range of the motor.
 20. The method of claim 19, wherein the power factor is regulated to be 0.9 or greater.
 21. The method of claim 19, wherein the power factor is regulated to be 0.98 or greater.
 22. The method of claim 19, wherein the pump circulates fluid through a pool.
 23. The method of claim 19, wherein the pump circulates fluid through a spa.
 24. The method of claim 1, wherein the motor is a variable speed motor comprising a inverter and power factor correction rectifier module that determines the power factor to a value of 0.9 or greater, the motor drives a pump to circulate water through a pool or spa.
 25. The method of claim 1, wherein measuring the voltage comprises measuring the voltage on a DC bus.
 26. The method of claim 4, wherein the power factor correction module determines the power factor to be at least greater than 0.9.
 27. The method of claim 4, wherein the power factor correction module determines the power factor to be at least greater than 0.98.
 28. The method of claim 1, wherein the motor is a variable speed motor.
 29. The method of claim 28, wherein the motor is a variable speed motor comprising a power factor correction rectifier module and an inverter and that determines the power factor to a value of 0.9 or greater, the motor drives a pump to circulate water through a pool or spa.
 30. The method of claim 1, wherein the foreign object obstruction overloads the pump.
 31. The method of claim 1, wherein the foreign object obstruction underloads the pump.
 32. The method of claim 1, wherein the fault determined based on the voltage, the current and the power factor is an overload condition of the motor.
 33. The method of claim 1, wherein the fault determined based on the voltage, the current and the power factor is an underload condition of the motor.
 34. A method of detecting a foreign object obstruction in a pool or spa, the pool or spa being coupled to a pump and a variable speed motor, the method comprising: measuring a first voltage and a first current being provided to the variable speed motor; determining and correcting a power factor using a power factor correction and rectifier module based on the first voltage and the first current; determining whether a fault condition has occurred due to the presence of a foreign object obstruction in the pool or spa based on a second voltage, a second current, and the power factor; shutting down the variable speed motor when the fault condition has occurred; and indicating to a user that the fault condition has occurred.
 35. The method of claim 34 and further comprising correcting the power factor to at least about 0.9 using the power factor correction and rectifier module.
 36. A method of detecting a foreign object obstruction in a pool or spa, the pool or spa being coupled to a pump and a motor, the method comprising: measuring a first voltage and a first current being provided to the motor; determining a power factor based on the first voltage and the first current; wherein determining the power factor comprises operating a power factor correction module to regulate the power factor and voltage to constant values under varying pump loads; determining whether a fault condition has occurred due to the presence of a foreign object obstruction in the pool or spa based on a second voltage, a second current, and the power factor; wherein determining whether the fault condition has occurred comprises comparing the second current on a DC bus to a DC bus current threshold; shutting down the motor when the fault condition has occurred; and indicating to a user that the fault condition has occurred. 